TabBarGadgetExamplesMultiline tab bar

TabBarGadget

ConfigurationExamples
Editable tabsEvent typesMultiline tab barSet and get the item stateVertical or mirrored tab bar
FunctionsHistory

Multiline tab bar

Description

If you use the attribute #TabBarGadget_MultiLine, the tabs use multiple rows if they need more space. The event type #TabBarGadget_EventType_Resize is sent, if there was a change in the gadget size.

Example

XIncludeFile "TabBarGadget.pbi"

Enumeration
  #Window
  #TabBarGadget
  #EditorGadget
EndEnumeration

Define Item.i

OpenWindow(#Window, 0, 0, 500, 300, "TabBarGadget", #PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_SizeGadget)
SmartWindowRefresh(#Window, #True)
TabBarGadget(#TabBarGadget, 10, 10, WindowWidth(#Window)-20, #TabBarGadget_DefaultHeight, #TabBarGadget_MultiLine, #Window)
  For Item = 1 To 20
    AddTabBarGadgetItem(#TabBarGadget, #PB_Default, "tab number "+Str(Item))
  Next
EditorGadget(#EditorGadget, 10, GadgetHeight(#TabBarGadget)+10, WindowWidth(#Window)-20, WindowHeight(#Window)-GadgetHeight(#TabBarGadget)-20)
  AddGadgetItem(#EditorGadget, #PB_Default, "Any editor gadget with text")

Procedure Callback()
  ResizeGadget(#TabBarGadget, #PB_Ignore, #PB_Ignore, WindowWidth(#Window)-20, #PB_Ignore)
  UpdateTabBarGadget(#TabBarGadget)
  ResizeGadget(#EditorGadget, #PB_Ignore, GadgetHeight(#TabBarGadget)+10, WindowWidth(#Window)-20, WindowHeight(#Window)-GadgetHeight(#TabBarGadget)-20)
EndProcedure

BindEvent(#PB_Event_SizeWindow, @Callback(), #Window)

Repeat
  
  Select WaitWindowEvent()
      
    Case #PB_Event_CloseWindow
      End
      
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #TabBarGadget
          Select EventType()
            Case #TabBarGadget_EventType_Resize
              ResizeGadget(#EditorGadget, #PB_Ignore, GadgetHeight(#TabBarGadget)+10, #PB_Ignore, WindowHeight(#Window)-GadgetHeight(#TabBarGadget)-20)
          EndSelect
      EndSelect
      
  EndSelect
  
ForEver
Union Bytes | Login